1. Field
This application relates generally to wireless technology and more specifically, but not exclusively, to two-way ranging.
2. Introduction
Distance ranging involves determining a distance between two locations. In a typical scenario, a ranging device such as a rangefinder measures a distance from the rangefinder to another object. Here, the ranging device may determine the amount of time it takes for a signal to travel between the ranging device and another device. The ranging device may then calculate the distance between the devices based on the signal propagation time and the known propagation speed of the signal (e.g., the speed of light). A distance ranging device may employ a variety of technologies such as laser, radar, sonar, and various forms of radio-frequency (“RF”) signaling. For convenience, the term distance ranging will be referred to herein simply as ranging.
In some cases, a two-way ranging technique may be employed to determine the distance between two devices. FIG. 1 illustrates a simplified example of ranging signal timing for two nodes (e.g., wireless devices) involved in a ranging operation. Here, a node A measures the distance to a node B based on a round-trip time associated with signals transmitted by each of the nodes. For convenience, the signals of FIG. 1 are depicted in a simplified form. A signal 102 transmitted by node A (as represented by arrow 104) is received at node B as signal 106 after a propagation time represented by time period 108. After receiving the signal 106, node B transmits a signal 112 (as represented by arrow 114) that is received at node A as signal 116 after a propagation time represented by time period 118. Each node generates a timing indication (hereafter referred to as a timestamp) associated with the transmission and reception of these signals. In conjunction with their respective transmission operations, node A may use a clock designated clock A and node B may use a clock designated clock B. In operation, there may be an offset T0 between these clocks. Given the transmit timestamps at nodes A and B (T1A and T3B, respectively) and the receive timestamps at nodes A and B (T4A and T2B, respectively), an estimated propagation delay Tp (e.g., corresponding to time period 108 or 118) may be computed without knowing the unknown clock offset T0. For example, a round-trip time estimate may be determined according to: 2Tp=(T4A−T1A)−(T3B−T2B). Here, T1A, T2B, T3B, and T4A are measurable. Thus, by providing node A with the turnaround time of node B (represented by time period 110), node A may calculate the round-trip time based on the time period between the transmission of the signal 102 and reception of the signal 116 (represented by time period 120) and the turnaround time.
FIG. 2 illustrates a more detailed example of how a two-way message exchange scheme may be employed to measure the relative distance between two nodes A and B. In this example, transmission by a given node is represented by the blocks above the horizontal line shown for that node, while reception by a given node is represented by the blocks below the horizontal line. Here, the transmission of a ranging packet by node A is represented by the blocks 202 and the reception of that packet by node B is represented by the blocks 204. Similarly, the transmission of a reply ranging packet by node B is represented by the blocks 206 and the reception of that packet by node A is represented by the blocks 208. Each ranging packet may include an acquisition preamble (e.g., used by a receiving node to initially acquire the timing of messages from a transmitting node), a ranging preamble (e.g., used to acquire more precise timing and to estimate a line-of-sight path for ranging operations), and a timestamping symbol (e.g., corresponding to timestamps T1A, T2B, T3B, and T4A discussed above). The reply packet may indicate the amount of time it took node B to transmit the reply packet after receiving the ranging packet (e.g., node B may send an indication of its turnaround time). Accordingly, node A may use this turnaround time to determine the actual propagation time of the packets. For example, node A calculates the total round-trip time as the amount of time that elapsed from the time it transmitted its ranging packet (e.g., timestamp T1A) to the time it received the reply packet (e.g., timestamp T4A). Node A may then determine the actual propagation time by subtracting the turnaround time from the total round-trip time.
In practice, the timing of the clocks used by the two nodes (e.g., clocks A and B) may drift with respect to an ideal clock. If the drifts for clocks A and B are βA and βB, respectively, the estimated propagation delay T′p may have an error given by Equation 1 where D represents the effective reply time (e.g., the turnaround time 110).T′p=(1+βA)Tp+(βA−βB)D/2  EQUATION 1
Typically, the effective reply time D is relatively large (e.g., on the order of milliseconds). If D=5 milliseconds and the required timing accuracy is 1 nanosecond, the residual clock drift may need to be less than 0.4 parts-per-million (“ppm”). This accuracy may be obtainable through the use of a sufficiently complex tracking mechanism. For example, drift accuracy on the order of 1 ppm or less may be achieved in a moderate power coherent radio, such as an IEEE 802.15.4a Zigbee radio. However, in an ultra-low power non-coherent radio (e.g., that uses 1/10th the power of a moderate power radio), this level of drift accuracy may be difficult to achieve.